1. Field
An embodiment of the present invention relates to the field of integrated circuit devices and methods and, more particularly, to a method and apparatus for implementing a cellular automaton on an integrated circuit device such as a microprocessor.
2. Discussion of Related Art
A cellular automaton (CA) is a discrete dynamical system with a behavior that is specified in terms of local relationships. For example, the cells of a particular cellular automaton may be arranged in regular spatial lattice. Each cell in the lattice may include one or more bits of data. At each discrete time step, each of the cells of the cellular automaton computes its new state based on its own state and/or the states of neighboring cells at the previous time step. All cells in the lattice are updated synchronously at each time step according to given update rules that are typically simple, local and discrete.
Cellular automata (CAs) were introduced in the 1940s by John von Neumann and Stanislaw Ulam and popularized by John Horton Conway in the 1960s with his development of the “Game of Life.” Cellular automata were developed as simple models to study, for example, biological processes.
CAs may be useful for a variety of purposes including image processing and generation, simulations of biological, chemical and/or physical processes, encryption/decryption, audio processing, etc.
For some applications, large computer systems and/or special purpose hardware developed particularly for CAs may be used to run CA applications. Such large computer systems and/or special purpose hardware may not be practical and/or accessible for many commonly used CAs or applications that may benefit from CA-type computations.